Add behaviour to the remove methods to remove the transaction's path itself. This...
authoremellor@ewan <emellor@ewan>
Sun, 18 Sep 2005 13:42:13 +0000 (14:42 +0100)
committeremellor@ewan <emellor@ewan>
Sun, 18 Sep 2005 13:42:13 +0000 (14:42 +0100)
tools/python/xen/xend/xenstore/xstransact.py

index d76dd88a90ad392f0ca791e35d3b5dd40c4262b7..e15ebdb9228459f740b9b1b63d7c7e55c287f9ca 100644 (file)
@@ -89,10 +89,15 @@ class xstransact:
         return xshandle().rm(path)
 
     def remove(self, *args):
+        """If no arguments are given, remove this transaction's path.
+        Otherwise, treat each argument as a subpath to this transaction's
+        path, and remove each of those instead.
+        """
         if len(args) == 0:
-            raise TypeError
-        for key in args:
-            self._remove(key)
+            xshandle().rm(self.path)
+        else:
+            for key in args:
+                self._remove(key)
 
     def _list(self, key):
         path = "%s/%s" % (self.path, key)
@@ -188,6 +193,10 @@ class xstransact:
     Write = classmethod(Write)
 
     def Remove(cls, path, *args):
+        """If only one argument is given (path), remove it.  Otherwise, treat
+        each further argument as a subpath to the given path, and remove each
+        of those instead.  This operation is performed inside a transaction.
+        """
         while True:
             t = cls(path)
             try: